解题思路:
本题是考察使用链表方法,对链表的结点数据进行降序排列。
第一处:使用结构指针p,来控制链表的结束,p必须指向h结构指针的next指针,来定位p的初始位置。所以应填写:h->next。
第二处:判断p指针是否结束,所以应填写:0。
第三处:q指向原q的next指针,所以应填:r。
***************************************************
给定程序MODI1.C中函数fun的功能是: 计算s所指字符串中含有t所指字符串的数目, 并作为函数值返回。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include
#include
#define N 80
int fun(char *s, char *t)
{ int n;
char *p , *r;
n=0;
while ( *s )
{ p=s;
/****
r=p;
while(*r)
if(*r==*p) { r++; p++; }
else break;
/****
if(*r= 0)
n++;
s++;
}
return n;
}
main()
{ char a[N],b[N]; int m;
printf("\nPlease enter string a : "); gets(a);
printf("\nPlease enter substring b : "); gets( b );
m=fun(a, b);
printf("\nThe result is : m = %d\n",m);
}
解题思路:
第一处: 程序中子串是由变量t来实现的,再根据下面while循环体中语句可知,所以应改为:r=t;。
第二处: 是判断相等的条件,所以应改为:if(*r==0)。
***************************************************
请编写函数fun, 函数的功能是: 将放在字符串数组中的M个字符串(每串的长度不超过N), 按顺序合并组成一个新的字符串。函数fun中给出的语句仅供参考。
例如, 字符串数组中的M个字符串为
AAAA
BBBBBBB
CC
则合并后的字符串的内容应是: AAAABBBBBBBCC。
提示:strcat(a,b)的功能是将字符串b复制到字符串a的串尾上,成为一个新串。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。